查看原文
其他

【技术分享】磁盘阵列的重组恢复其实并不难

Orichen 天鉴科技 2022-12-10

在上一篇文章《RAID磁盘阵列你了解多少?》中分析了几种常见RAID级别的数据存储结构。忘记的小伙伴抓紧复习一下。今天咱们来一起学习一下如何对RAID进行重组恢复。


RAID级别分析



·
 成员盘数量判断


     进行RAID重组之前,首先需要知道磁盘阵列采用的RAID级别,一般可以通过成员盘数量进行初步判断。这就需要清楚每种RAID对成员盘数量的要求。比如RAID 0和RAID 1成员盘数量为2,如果再多的话就可能是RAID 10 或者RAID 0+1了。RAID 5要求成员盘数量最少为3,RAID 6成员盘一般最少为4。所以可以根据成员盘的数量进行初步判断,当然这只能作为初步判断的方式,因为有些磁盘阵列还会加入“热备”盘。



·
底层数据结构判断


在分析之前我们再次回忆一下几种常见RAID级别的数据存储结构。

RAID 0:称之为“Stripe”,条带式存储。数据存储时,以单位扇区为数据条带将数据分散存储在成员盘上,没有冗余校验。

由存储结构可知,其成员盘底层数据存储必然也是连续的,这里可以根据NTFS文件系统MFT的一个特点。在向NTFS文件系统的分区内写入数据,$MFT会为其分配一个MFT项,而每个MFT都会有自己的一个编号,这个编号是顺序递增。而一般运行在Windwos下的磁盘阵列也必然会采用NTFS文件系统。


所以由此特点再看RAID 0成员盘的底层数据结构, 就可以很容易的获取到RAID相关参数信息。接下来以RAID 0为例,分别加载两块成员盘,其底层的数据结构如图。


1号成员盘                              2号成员盘


由数据存储结构可以看出,所有MFT的编号都是连续的,而且细心的小伙伴应该发现了,在1号成员盘中,第一个循环最后一个MFT编号为37,对应相同位置的2号成员盘,MTF编号为38。两个MFT正好是顺序连接的。


RAID 1:成员盘间数据存储方式互为备份关系,也称之为“Mirror”。是所有RAID级别中安全性最高的。

判断磁盘阵列是否为RAID 1太简单了。可以借助X-Ways/Winhex中的同窗比较功能。发现底层数据完全相同,即可肯定该磁盘阵列为RAID 1结构。


RAID 5:相较以上两种RAID级别,RAID5加入了冗余校验,采用了异或运算(XOR)的方式对数据条带进行校验并作为冗余存储在同条带的成员盘中。



也正是由于RAID 5中存在冗余校验,可以由此判断出很多的RAID参数,后面再详细介绍。在此可以对其中的一到两块成员盘进行加载解析。


图中不难看出,蓝色选框区域为正常的数据带,而紫色的选框区域为校验,怎么看出的呢?其实每条记录就是NTFS文件系统下的MFT,正常的数据可以清楚地看出MFT中记录的文件名(30属性)。而RAID 5中校验是通过异或运算得来的,所以异或出的结果文件名也必然会出现“乱码”的现象。细心的小伙伴应该发现了,正常的数据带最后一条记录的MFT编号是43F,紧接着校验带的第一条记录的MFT编号为6C0。这两个MFT是顺序存储在物理硬盘中的,为什么MFT编号不是连续的呢?后面我们再详细的讲解。成员盘中存在冗余校验,并且数据带、冗余带交叉存储,基本可以肯定该RAID级别为RAID 5。


RAID参数分析


分析出RAID级别后,接下来就可以继续分析RAID参数了。只有知道了RAID的参数后才可以根据参数进行RAID重组恢复。



·盘序


这里盘序指的就是成员盘的数据存储顺序,也就是第一个数据块的写入位置。这个参数至关重要。当然判断方法也比较简单,可以通过MBR来间接判断。

RAID 0:

前面提到RAID 0成员盘数量是两块,而且有没有校验。所以可以肯定底层数据中肯定有且只有一块成员盘的0扇区是MBR。既然是RAID磁盘阵列,那么就是将两块成员盘当做一块硬盘,在系统下进行初始化的时候,自然也就只写入了一个MBR。由此便可知,有MBR的为第一块成员盘,没有MBR的为第二块成员盘,盘序就此分析出来了。



RAID 1:RAID 1在进行重组恢复时其实不需要分析相关的参数,因为其结构的特殊,两块成员盘的数据完全相同,所以在进行恢复的时候,只需要分析其数据的“新鲜程度”选择其一进行单盘恢复即可。


RAID 5:不能完全凭借MBR特点进行判断了。由于RAID 5有冗余,而第一个条带中有可能除1号盘外的成员盘没有数据,所以RAID 5成员盘中底层有可能有两个MBR,或者有一个特别类似的MBR。一个为正常硬盘初始时化生成的,另一个是通过异或运算所得结果。所以没有办法完全通过MBR出现的位置判断盘序。


上图为正常的MBR和一个类似的MBR,由于这个案例中有一块成员盘第0扇区有数据所以这个类似的MBR看起来也并不那么类似了。但是我们从图中可以看出,两块成员盘的第1个字节,同为33H。可以判断另外的所有成员盘的0扇区的第一个字节肯定都为00。这里有一个“投机取巧”的方法是,正确MBR的成员盘,在解析的时候一般能解析到其阵列中的数据分区。

那么针对RAID 5盘序的判断,其实也不必着急,在接下来分析循环方式和循环方向的同时盘序自然就分析出来了。



·条带大小


条带大小的准确也是至关重要的,这个参数出现错误就会导致RAID重组不成功或者分区内的数据出现错位。这里就以RAID 5为例,因为RAID 0的分析方法和RIAD 5类似,只是在分析时不用考虑校验区。由RAID存储结构可知,无论是数据条带还是校验条带可以肯定的是其扇区数是相同的。所以只需要在底层找到数据区条带或者校验区条带在进行分析就可以判断出条带大小了。上面有提到数据条带与校验条带特别直观的是MFT的文件名属性(30属性)。正常的数据MFT文件名一定是直观能看得懂的。而校验的MFT文件名属性(30属性)看起来像是“乱码”的。由此便可轻易的定位到数据区与校验区。打开任意一到两块成员盘进行解析分析便可得到条带大小这个参数。


如图定位到这个数据条带。可以清晰的分辨该区域是正常的数据区。并且可以看到MFT编号出现了断层。可以看出MFT编号为xBF向下应该是一段新的数据条带。我们利用该校验带进行条带大小的计算。MFT编号xBF处的扇区数为177662。向上找到数据带的起始位置。在MFT编号为x40处为该数据区域的起始位置,扇区数为177408。


分析结果可知,物理扇区177408至177662之间为一个数据条带。可以计算出该RAID的条带大小为177662-177408=254。约等于265扇区,也就是128KB。为了保险起见可以同样的方式在其他成员盘上进行验证。



·循环方向及循环方式


在此还是以RAID 5为例。RAID 5中有两种循环方向分别为:左和右;又有两种循环方式为:同步和异步。组合起来就有四种结构,分别为:左同步、左异步、右同步、右异步。一般分析循环方式和循环方向可以通过校验条带与循环总扇区数进行MOD取余。根据余数确定其应该出现的位置间接推断出循环参数。该磁盘阵列共4块成员盘,首先对4号成员盘(04.img)进行加载定位到第一个循环中的校验带位置。

通过MFT非常清楚的可以分辨,该区域为校验带。接下来,在校验带中取任意一个MFT得到其扇区数。


如图MFT编号x47对应的扇区数为177678。条带大小前面分析所得为256扇区,那么一个循环也就是256*4=1024。则用177678 MOD 1024=526;由于是4块成员盘且循环方式分为左和右。所以其结构固定为以下两种可能。

计算所得04.img取余结果为526,对应上图右循环时为3号盘位置;对应左循环则为2号盘位置。以此方法继续计算其余3块成员整理一下结果:

04.img:177678 MOD 1024=526  对应3号    2号

03.img:177964 MOD 1024=812  对应4号    1号

02.img:178208 MOD 1024=32   对应1号    4号

01.img:178484 MOD 1024=208  对应2号    3号


至此盘序就有了两种可能:

·盘序为2143

·盘序为3412


在实际的案件中,遇到成员盘的实际顺序与服务器盘仓上编号不符的情况时有发生。所以不可只凭借盘仓上的硬盘编号就断定其成员盘的盘序。盘序至此分析出两种可能但是具体是其中的哪一种还得继续分析。根据分析的结果又可以分为以下几种情况。

·盘序为“2143”时:


·盘序为:“3412”时:



其实到这里基本上已经可以确定很多参数了。假如盘序为第一种“2143”。那么通过上图可知,右循环时02.img第一个扇区应该是校验,03.img第一个扇区应该为数据。左循环时02.img第一扇区应该为数据,03.img第一个扇区应该为校验。那么实际打开02.img和03.img对比一下即可进行排除。

对比之下一目了然,02.img第一扇区为校验,而03.img第一扇区为数据。那么以上的八种可能就一下子排除了四种,还剩下的可能如图。



    接下来我们判断排序。由以上四种情况可以看出,MBR可能出现的盘号为01.img或03.img别无其他可能,那么分别对两块成员盘进行加载分析,由于前面分析过03.img了可以明确的看到03.img的第0扇区全为00并不是MBR。保险起见加载01.img再次确认。


至此,以上4种可能又被排除了两种。剩下的两种可能如下。





总结一下,我们分析出了:

RAID类型RAID 5

条带大小256扇区

循环方向:右循环

盘序2143


目前还剩下循环方式没有判断出来。小伙伴们可以仔细观察一下图中蓝色区域。可以看出无论是哪种循环方式,第一个条带数据没有区别。关键点在于蓝色区域,也就是我们需要确定2号盘的第一个数据条带是否与3号盘中MFT连接着,如果是顺序存储的那么可以肯定是“右异步”,反之不是顺序连接的可以肯定是“右同步”。首先定位到3号盘的MFT断点位置。可以看出其MFT编号为:x13F,扇区号为:177918如图。

 


接下来加载02.img跳转至相同扇区。解析如下



可以看出其MFT编号并不是连续的,所以可以肯定该RAID磁盘阵列为“右同步”结构。至此整个RAID 5重组就完毕了。接下来即可通过软件对其进行重组恢复了。由于在数据固定时发现其中1号成员盘出现了坏道,所以避免数据不同步,在重组的时候选择“剔除”1号盘。


有小伙伴可能想说,一点不简单,步骤繁琐。

有没有更简单的方法?

还真有


  • 运行「天鉴取证恢复系统」选择“专业工具”找到“RAID智能分析软件”,选择并运行。



  • 将成员盘进行加载,同时也支持物理硬盘的加载。



  • 在右侧选择好文件系统,点击确定即可完成全自动RAID参数分析,整个恢复过程全自动,支持RAID 0/1/5/6/HP双循环等多种RAID级别。并且可以自动判断数据“新鲜度”,自动“剔除脏盘”,真正的全自动分析。



  • 分析结果会自动保存在日志里。点击“目录浏览”进行数据查看与恢复。



  • 并且「天鉴取证恢复系统」还支持常见的监控视频恢复(碎片整理)、行车记录仪恢复、数据库碎片恢复、硬盘固件级修复(如ATA密码、译码器恢复、缺陷表等)、同时还支持SSD的固件修复。是一款功能强大,专门为实际案件设计研发的取证恢复系统。

END



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存